<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>双向绑定v-model指令</title>
</head>
<body>
    <script src="/js/vue.js"></script>
    <div id="app">
        <!-- 数据双向绑定 表单控件在实际开发中非常常见，特别对于用户信息提交需要大量的表单-->
        <!-- vue中使用v-model指令来实现表单元素和数据的双向绑定 -->
        <!-- 双向绑定，input内容改变同时，后台的数据也在同时改变 -->
        <input type="text" v-model="msg">
        {{msg}}
        <br>
        <!-- 底层代码，v-model靠什么来实现的？ -->
        <!-- v-bind v-on -->
        <input type="text" :value="message" v-on:input="valueChange">
        {{message}}
        <!-- v-model 就是v-bind 和 v-on 的语法糖 -->
        <!-- v-on： 当我们输入框输入内容时，因为input中v-model绑定了message，所以会把实时输入的内容传递到后台message中 -->
        <!-- v-bind：当我们message发生改变时，因为使用胡子语法，将message插入到DOM元素中， -->
        <!-- 所以v-model实现了双向绑定 -->

        <!-- input还可以换成多行文本 textarea -->
    </div>

    <script>
        let app = new Vue({
            el:"#app",
            data:{ 
                msg:'111',
                message:'222'
            },
            methods:{
                valueChange(event){
                    // console.log(event);
                    this.message = event.target.value
                }
            }
        })
    </script>   
</body>
</html>